1. Field of the Invention
This invention relates to data processing systems with disk array storage devices and more specifically to methods and apparatus that enhance operations in such disk array storage devices, particularly with applications that operate on such data processing systems and that produce dependent input/output sequences with disk array storage devices.
2. Description of Related Art
A conventional data processing system that handles large quantities of data generally includes one or more hosts and a disk array storage device, or DASD. Other systems may include multiple disk array storage devices. A host generally includes one or more control processors, main memory and input and output devices. A host executes programs, also called applications, that operate on data transferred to the main memory from the disk array storage devices as known in the art. Disk array storage devices, such as those manufactured and sold by the assignee of this invention, include many physical storage devices, or magnetic disk drives, organized as logical storage volumes or logical devices.
A disk array storage device operates with a host adapter or equivalent module that receives a variety of input/output commands from a host over a channel in a host dependent format. The host adapter translates those host input/output commands, or host requests, into a format that disk adapters, or equivalent structures, in the disk array storage device recognize and use to direct operations at a logical device level. When an operation completes in the disk array storage device, the host adapter transmits a status word or message to the host to report either the success of the operation or the reason for a failure. Two specific commands that are important to this invention are “read” and “write” commands. A read command from a host effects a transfer of data from the disk array storage device to the host; a write command, a transfer to the disk array storage device from the host.
Significant efforts have been made to enhance the operation and performance of disk array storage devices in response to read and write commands from primary applications, such as are used in airline or banking operations. Also, efforts have been directed to enabling disk array storage device operations that are ancillary to the primary applications. A backup application is one example of such an ancillary application. Particular emphasis has been placed upon enabling such ancillary applications to operate without interrupting any primary applications running on the host. For example, it is obviously desirable to allow a database backup without interrupting any of the transactions underway with the various users of a primary application.
U.S. Pat. No. 6,101,497 to Ofek for a Method and Apparatus for Independent and Simultaneous Access to a Common Data Set, assigned to the same assignee as this invention, discloses a concept for achieving such operations. In accordance with that disclosure, certain physical disk drives in a disk array storage device are configured to be available to the primary applications. These are called “standard devices”. Other logical devices are configured to act either as a mirror for a standard logical device or to be split to provide a copy of the data on the standard device for some other purpose such as interaction with an ancillary application. In the context of the systems manufactured by the assignee of this invention, the second logical devices are called “BCV devices”. When BCV devices are incorporated, a BCV device initially attaches to a standard device to act as a mirror. Generally speaking, anytime after the BCV device has achieved synchronism with the standard device, the BCV device can be split, or detached, from the standard device. The data on the BCV device is then available to an ancillary application. This allows the ancillary application to act on the data on the BCV device independently of and simultaneously with the continued operation of a primary application with data stored on the standard device.
As the use of such data processing systems has grown, certain issues that impact the splitting of a BCV device from its corresponding standard device have appeared. These include an issue of pending write data operations. Disk array storage devices of many manufacturers, including those of the assignee of this invention, utilize cache memory to enhance performance, particularly for write operations. When a host issues a write command, the data to be written transfers only to the cache memory before a host adapter signals a host that the write operation is complete. The newly written data actually remains in the cache for some interval before that data, or overwritten data to the same location, transfers to the logical device storage medium. During that transient interval in the cache, the operation is complete with respect to the host, but pending with respect to physical disk device. Such cache entries are called “write pending” entries. The process of transferring a “write pending” entry to a logical device storage medium is called “destaging”.
Efforts have been made to manage write pending entries during operations of BCV devices. The objective of such efforts has been to assure that a BCV device, after it is split, accurately reflects the data on the standard device at the time of the split, including any write pending entries at the time that the split occurred. It is also an objective to minimize the impact of any such split operation on the main operations. For example, U.S. Pat. No. 6,370,626 to Gagne et al. discloses a Method and Apparatus for Independent and Simultaneous Access to a Common Data Set that reduces any interruption by implementing an “instant split” operation. When an “instant split” command is received, a corresponding BCV device immediately detaches from the standard device and becomes accessible to an alternate application. This occurs under a lock condition that lasts in the order of microseconds during which certain control operations are accomplished but no data is transferred and no write pending entries are managed. Immediately thereafter the lock is released. Various processes in the disk array storage device thereafter manage the write pending entries in an orderly fashion even as the primary application interacts with the standard device and an ancillary application, such as a backup application, interacts with the BCV device.
Applications and related data storage requirements constantly increase in complexity and volume. In the past some applications and associated data were stored entirely on a single standard device. Now such applications and associated data may be stored on multiple standard devices in a single disk array storage device. Other applications even require a storage capacity that exceeds the capacity of a single disk array storage device necessitating the distribution of a single application and its data over two or more disk array storage devices, each with up to hundreds of standard devices.
A database application is one example of an application in the last category. That is, one set of standard devices may contain the database data while another set of standard devices contains an associated log file, and these standard devices may be in different disk array storage devices. With these applications it may also be desirable to obtain a copy of the data and log files for independent processing. One approach uses an “instant split” operation as described in U.S. Pat. No. 6,370,626. However, with multiple standard devices in separate disk arrays, a host has to issue one instant split command to each set of BCV devices. Moreover, each discrete instant split operation is dispatched separately. Therefore the order in which the instant split commands are processed for different BCV devices is unpredictable.
For example, dependent input/output (I/O) sequences in database applications involve three write operations. The first write operation transfers an entry through a cache to a log file establishing the fact that data is to be written. The second write operation transfers the data to the cache for destaging to a standard device. The third write operation transfers another log entry to the cache for the log file; this entry indicates that the operation is complete. If multiple instant split commands issue so that the instant split for the logical volume containing the data is completed first, the data file may be updated without updating the log file in the BCV devices. In that event, the log file in the BCV device would not contain a record of the data change in another split BCV device. Alternatively if the log files were destaged and updated before the data file was updated, the log file could indicate the completion of an operation without the data actually having been transferred to the split BCV devices. Under either scenario, the data in the split BCV device is inconsistent.
It is difficult at best to identify any such inconsistent data. Consequently it became necessary to enable such instant split and other similar BCV device operations to occur while maintaining consistent data on multiple split BCV devices. U.S. patent application Ser. No. 09/613,118 filed Jul. 10, 2000 to Douglas E. LeCrone and Eugene D. Pflueger for a Method and Apparatus for Enhancing Recovery Operations in a Disk Array Storage Device discloses one such solution. In accordance with the disclosure, a special command to split the BCV devices is translated into one or more request data structures that identify the BCV devices as being involved in a consistent split operation. The command establishes a system lock over those particular BCV devices to be split. A host generates the lock.
The lock raises the I/O interrupt level to block user I/O operations to all logical devices connected to a host. That, is, while I/O interrupt level is raised, user applications cannot interact with any logical device by reading or writing data even with logical devices for which consistency is not a concern. Although every effort is made to minimize the duration of such interruptions, there still is a finite interruption interval. In certain applications, that interruption interval can be excessive.
This process may not always be effective in maintaining data consistency in multiple host environments where applications in different hosts can interact with data in one or more common logical volumes. As an example, assume that first and second host applications can interact with data in at least one common logical volume. Assume further that the first host has established a consistency group including any common logical volumes. When the first host initiates a splitting operation, it issues a lock to prevent that host from issuing any input/output operations to any logical volume. However, nothing prevents an application in the second host from transferring data to any of the common logical volumes. If that occurs, the data in the logical volumes may lose its consistency.
Therefore what is needed is a method and system for establishing consistency groups with certain additional criteria. For example, such a consistency group should be capable of including logical volumes from one or more data storage facilities. A consistency group should be capable of maintaining consistent data even when applications in multiple hosts have access to data in any common logical volume. Moreover, the establishment of a consistency group should have a minimal impact on normal data processing operations, including minimizing any interval during which access to data in any logical volume is blocked by a host lock or other like operation.